package com.maple.common.utils

import java.security.MessageDigest
import java.security.NoSuchAlgorithmException

/**
 * Tip:
 * Create by SeVen on 2024/4/15 9:39
 */
object MD5Encryptor {
    fun generateMD5(input: String): String {
        return try {
            // 创建一个 MessageDigest 实例，使用 MD5 算法
            val md = MessageDigest.getInstance("MD5")
            // 将输入的字符串转换为字节数组
            val messageDigest = md.digest(input.toByteArray())
            // 将字节数组转换为十六进制字符串
            val hexString = StringBuilder()
            for (b in messageDigest) {
                // 将每个字节转换为 0xFF 之下的正整数
                val hex = Integer.toHexString(0xff and b.toInt())
                // 如果转换后的字符串长度为 1，需要在前面补0
                if (hex.length == 1) {
                    hexString.append('0')
                }
                hexString.append(hex)
            }
            // 返回最终的 MD5 哈希值
            hexString.toString()
        } catch (e: NoSuchAlgorithmException) {
            // 如果指定的算法不存在，打印异常信息并返回空字符串
            e.printStackTrace()
            ""
        }
    }
}